// @flow
import React, { Component } from 'react'
import styles from './DictSettingActions.css'
import { Button, Popconfirm, message } from 'antd'
import universalFetch, { handleFetchError } from 'store/modules/fetch'

type Props = {
  refreshDictSetting: Function,
  data: Object,
  history: Object
}

class DictSettingActions extends Component {
  props: Props
  state: State
  deleteDictSetting: Function
  constructor (props: Props) {
    super(props)
    this.deleteDictSetting = this.deleteDictSetting.bind(this)
  }

  deleteDictSetting () {
    const { data } = this.props
    universalFetch(`${__SERVICE_API__}sys/dicts/${data.id}`, {
      method: 'DELETE'
    })
    .then((res) => res.json())
    .then((json) => {
      // if (json.code !== 200000) {
      //   throw new Error(JSON.stringify({ code: json.code, message: json.message }))
      // }
      message.success('删除成功')
      this.props.refreshDictSetting()
    })
    .catch((error) => {
      handleFetchError(error)
      console.error(error)
      message.error('删除失败')
    })
  }
  render () {
    const { history, data } = this.props
    return (
      <div className={styles['actions']}>
        <Button
          size='small'
          type='primary'
          style={{ marginRight: '10px' }}
          onClick={() => {
            history.push({
              pathname: '/system/dict-edit',
              state: {
                data
              } })
          }}
          >
          编辑
        </Button>
        <Popconfirm title='确定要删除吗'
          arrowPointAtCenter
          placement='left'
          onConfirm={this.deleteDictSetting}
          >
          <Button
            size='small'
            type='danger'
            >
            删除
          </Button>
        </Popconfirm>
      </div>
    )
  }
}

export default DictSettingActions
